﻿using System;
using System.Threading.Tasks;
using Com.Lancetinc.Evs.Events;

namespace Com.Lancetinc.Evs.Controls
{
    public enum VideoStateEnum
    {
        Stop,
        Playing,
        Paused,
    }

    public class VideoStateChangeEventArgs : EventArgs
    {
        public VideoStateEnum VideoState { get; }

        public VideoStateChangeEventArgs(VideoStateEnum videoState)
        {
            this.VideoState = videoState;
        }
    }

    interface IVideoUserControl
    {
        event EventHandler<VideoStateChangeEventArgs> VideoStateChanged;
        VideoStateEnum VideoState { get; }
        Task<bool> Play();
        void Pause();
        void Stop(RequireStopReason reason);
        void CaptureImage(string saveFileName);
    }
}
